Scrum
Scrum是一種迭代式增量軟件開發過程,通常用于敏捷軟件開發。Scrum在英語的意思是橄欖球里的爭球。
雖然Scrum是為管理軟件開發項目而開發的,它同樣可以用于運行軟件維護團隊,或者作為計劃管理方法:Scrum of Scrums.

歷史
- 1986年,竹內弘高和 野中郁次郎闡述了一種新的整體性的方法 ,該方法能夠提高商業新產品開發的速度和靈活性:[1]
- 他們將這種新的'整體性方法與橄欖球相比較,前者各階段相互重疊,并且由一個跨職能團隊在不同的階段完成整個過程,而后者整個團隊"tries to go to the distance as a unit, passing the ball back and forth"。
- 他們對來自汽車,照片機器,計算機和打印機等產業的案例進行了研究。
- 1991年,DeGrace和Stahl在《Wicked Problems, Righteous Solutions》[2]一書中將這種方法稱為 Scrum,在竹內弘高和 野中郁次郎的文章中提到的橄欖球術語。
- 1990年代初,肯·施瓦伯在其公司使用了一種方法Advanced Development Methods(先進開發方法),這種方法后來發展為Scrum。
- 同時,杰夫·薩瑟蘭在Easel公司開發了一種類似的方法,并首次稱之為Scrum。[3]
- 1995年,在奧斯汀舉辦的OOPSLA '95上,薩瑟蘭和施瓦伯聯合發表了論文首次提出了Scrum概念。施瓦伯和薩瑟蘭在接下的幾年里合作,將上述的文章,他們的經驗,以及業界的最佳實踐融合起來,形成我們現在所知的Scrum。
- 2001年,施瓦伯與 麥克·比竇(Mike Beedle)合著了《敏捷軟件開發-使用Scrum過程》一書,介紹了Scrum方法。
Scrum的特性
Scrum是一個包括了一系列實踐和預定義角色的過程骨架。Scrum中的主要角色包括:
- 'Scrum Master' 是Scrum教練和團隊帶頭人,確保團隊合理的運作Scrum,并幫助團隊移除實施中的障礙;
- 產品負責人(Product Owner),確定產品的方向和愿景,定義產品發布的內容、優先級及交付時間,為產品ROI負責;
- 開發團隊(Team),一個跨職能的小團隊,人數5-9人,團隊擁有交付可用軟件需要的各種技能。
在每一次沖刺(一個15到30天的周期,其長度由開發團隊決定)當中,開發團隊創建可用的(可以隨時推出)軟件的一個增量。每一個沖刺所要實現的功能來自產品訂單(product backlog)。產品訂單是按照優先級排列的要完成的工作的概要的需求,哪些訂單項會被加入一次沖刺將由沖刺計劃會議決定。 在會議中,產品負責人告訴開發團隊他需要完成產品訂單中的哪些訂單項。開發團隊決定在下一次沖刺中他們能夠承諾完成多少訂單項。在沖刺的過程中,沒有人能夠變更沖刺訂單(sprint backlog),這意味著在一個沖刺中需求是被凍結的。
管理Scrum過程有很多實施方法,從即時貼、白板,一直到軟件包。Scrum最大的好處之一是它非常容易學習,而且啟動Scrum應用并不需要太多的投入。
介紹來自:http://zh.wikipedia.org/wiki/Scrum